import os
from common.settings import ROOT_PATH, logger
from common.constant import CommonErrorInfo


def check_file_path(file_path: str) -> str:
    # file_path为相对路径，如：common/settings.py，且首字符不能是路径分隔符
    if file_path:
        # 兼容 windows 和 linux 不同操作系统的路径分隔符
        if "/" in file_path:
            file_path = os.sep.join(file_path.split("/"))
        elif "\\" in file_path:
            file_path = os.sep.join(file_path.split("\\"))
        else:
            logger.error(CommonErrorInfo.SEPARATOR_IS_WRONG.value)
            raise ValueError(CommonErrorInfo.SEPARATOR_IS_WRONG.value)
        file_path = os.path.join(ROOT_PATH, file_path)
        if os.path.exists(file_path):
            return file_path
        else:
            logger.error(f'{file_path} 不存在')
            raise ValueError(f'{file_path} 不存在')
    else:
        logger.error(CommonErrorInfo.FILE_PATH_IS_NONE.value)
        raise ValueError(CommonErrorInfo.FILE_PATH_IS_NONE.value)
